/**
 * 查找父组件
 */
export const $parent = (current, targetName) => {
  let parent = current.$parent || current.$root; //$parent 找到最近的父节点 $root 根节点
  let name = parent.$options.name; // 获取当前组件实例的name
  // 如果当前有节点 && 当前没名称 且 当前名称不等于需要传进来的名称的时候就去查找当前的节点
  // 循环出当前名称的一样的组件实例
  while (parent && (!name || name !== targetName)) {
    parent = parent.$parent;
    if (parent) {
      name = parent.$options.name;
    }
  }
  // 有节点表示当前找到了name一样的实例
  return parent || null;
};

/**
 * 比较版本好大小
 * @param {*} v1
 * @param {*} v2
 * @returns
 */
export function compare(v1, v2) {
  if (v1 === v2) {
    return 0;
  }

  const toNum = (version) => {
    version = version.toString();
    // const versionArr = version.split('.')
    const versionArr = version.split(/\D/);
    const NUM_FILL = ['0000', '000', '00', '0', ''];

    for (let i = 0; i < versionArr.length; i++) {
      const len = versionArr[i].length;
      versionArr[i] = NUM_FILL[len] + versionArr[i];
    }

    return parseInt(versionArr.join(''));
  };

  v1 = toNum(v1);
  v2 = toNum(v2);

  if (v1 > v2) {
    return 1;
  }
  if (v1 < v2) {
    return -1;
  }
}

/**
 * 获取适配自定义tabbar高度的数据
 * @param {*} len 基础数据，需要基于自定义tabbar高度计算的
 * @returns 计算完成的高度
 */
export const toFixedCustomTabbarHeight = (len = '0px') => {
  const { system } = wx.getSystemInfoSync();
  console.log('system', system);
  const version = '11.2.0';
  const systemVersion = system.split(' ')[1];
  const diff = compare(systemVersion, version);
  console.log(diff);
  // if (diff === 0 && diff === 1) {
  //   return `calc(${len} + 96rpx + env(safe-area-inset-bottom))`;
  // }
  return `calc(${len} + 100rpx + env(safe-area-inset-bottom))`;
};

export const toFixedCustomTabbarPadding = () => {
  return 'env(safe-area-inset-bottom)';
};
